/*
 * PagFormularioInscricao.java
 * 
 * Projeto: Kruskal - SRAC
 * LEDS - Laboratório de Engenharia e Desenvolvimento de Software
 * IFES - Instituto Federal do Espírito Santo - Campus Serra.
 */
package srac.controleeventos.cih;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Div;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import srac.controleatividades.cci.CtrlPrincipal;
import srac.controleatividades.cdp.Aluno;
import srac.controleatividades.cdp.TipoUsuario;
import srac.controleatividades.cdp.Usuario;
import srac.controleeventos.cci.CtrlEvento;
import srac.controleeventos.cdp.Evento;
import srac.controleeventos.cdp.Participante;

public class PagFormularioInscricao extends GenericForwardComposer {

    private Window winFormularioInscricao;
    private Div boxInformacao;
    private Textbox nomeParticipante, mailParticipante, cpfParticipante;
    private Participante obj;
    private Evento evento;
    private Label msg;
    private static PagFormularioInscricao instance = null;
    private CtrlEvento ctrlE = CtrlEvento.getInstance();
    private CtrlPrincipal ctrlP = CtrlPrincipal.getInstance();

    static public PagFormularioInscricao getInstance() {
        if (instance == null) {
            instance = new PagFormularioInscricao();
        }
        return instance;
    }

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
        
        Usuario user = (Usuario) execution.getSession().getAttribute("usuario");
        if(user != null && user.getTipo() == TipoUsuario.ALUNO){
            Aluno aluno = (Aluno) ctrlP.obterAluno(user);
            nomeParticipante.setText(aluno.getNome());
            nomeParticipante.setDisabled(true);
        }

    }

    public void onCreate$winFormularioInscricao() throws Exception {

        // if feito para verificar se existe algum usuario logado, se nao existir eh redirecionado para o login
        if (Executions.getCurrent().getSession().getAttribute("usuario") == null) {
            Executions.sendRedirect("/");
            winFormularioInscricao.detach();
        }

        evento = (Evento) arg.get("obj");

    }

    public void onClick$voltar(Event event) {
        winFormularioInscricao.onClose();
    }

    public void onClick$confirmar(Event event) {

        obj = new Participante();
        obj.setNome(nomeParticipante.getText());
        obj.setEmail(mailParticipante.getText());
        obj.setCpf(cpfParticipante.getText());
        evento.setVagas(evento.getVagas() - 1);
        obj.setEvento(evento);
        ctrlE.incluirParticipante(obj);
        winFormularioInscricao.onClose();

    }
}
